/**
 *author:yhb
 */
package com.towker.frame.service.rbac;

import java.util.Map;
import org.springframework.stereotype.Service;

import com.towker.core.db.*;
import com.towker.core.page.*;
import com.towker.frame.dao.rbac.*;
import com.towker.frame.model.rbac.*;

@Service
public class RoleUserService extends BaseService<RoleUser, java.lang.Long>
{
	private RoleUserDao roleUserDao;
	public void setRoleUserDao(RoleUserDao roleUserDao){this.roleUserDao = roleUserDao;}
	
	@SuppressWarnings("unchecked")
	@Override
	protected EntityDao getEntityDao(){return (EntityDao) this.roleUserDao;}
	
	/**
	 * 添加角色用户分配。
	 * */
	public void addRoleUser(long sysid,long roleid,String userIds)
	{
		for(String tmp:userIds.split(","))
		{
			RoleUser po=new RoleUser();
			po.setSystemid(sysid);
			po.setUserid(Long.parseLong(tmp));
			po.setRoleid(roleid);
			roleUserDao.add(po);
		}
	}
	/**
	 * 给用户分配角色*/
	public void assignUserRole(long userid,String sysRoleIds)
	{
		roleUserDao.delByUserid(userid);
		String[] arr=sysRoleIds.split(",");
		if(null==arr||0==arr.length)return;
		for(String tmp:arr){
			RoleUser po=new RoleUser();
			po.setUserid(userid);
			String[] sysRole=tmp.split(":");
			po.setSystemid(new Long(sysRole[0]));
			po.setRoleid(new Long(sysRole[1]));
			roleUserDao.add(po);
		}
	}
	
	/**
	 * 根据角色删除角色用户分配。
	 */
	public void delByRoleid(long roleid)
	{
		this.roleUserDao.delByRoleid(roleid);
	}
	
	/**
	 * 根据系统删除角色用户分配。
	 */
	public void delBySysid(Long sysid)
	{
		this.roleUserDao.delBySysid(sysid);
	}
	
	/**
	 * 根据用户删除角色用户分配。
	 */
	public void delByUserid(long userid)
	{
		roleUserDao.delByUserid(userid);
	}

	@SuppressWarnings("unchecked")
	public PageModel getPage(int currentPage, Map map)
	{
		PageRequest request = new PageRequest();
		request.setFilters(map);
		request.setCurrentPage(currentPage);
		request.setPageSize(5);
		PageModel page = roleUserDao.getPage(request);
		return page;
	}
}
